import api from "@/api";
import { isLoggedIn } from "@/api";

/**
 * 获取当前登录用户信息
 * @returns {Promise<object>} 用户信息对象
 */
export const getCurrentUserInfo = async () => {
  if (!isLoggedIn()) {
    return { userId: "anonymous", nickname: "匿名用户" };
  }

  try {
    const res = await api.user.getCurrentUser();

    if (res.code === 0) {
      return {
        userId: res.data.oId || res.data.userId || "",
        userName: res.data.userName || "",
        nickname: res.data.userNickname || res.data.userName || "匿名用户",
        avatar: res.data.userAvatarURL || "",
        email: res.data.userEmail || "",
        role: res.data.userRole || "",
      };
    } else {
      console.error("获取用户信息失败:", res.msg);
      return { userId: "anonymous", nickname: "匿名用户" };
    }
  } catch (error) {
    console.error("获取用户信息失败:", error);
    return { userId: "anonymous", nickname: "匿名用户" };
  }
};

/**
 * 从本地存储中获取用户信息
 * @returns {object|null} 用户信息对象或null
 */
export const getUserInfoFromStorage = () => {
  try {
    const userInfoStr = uni.getStorageSync("userInfo");
    if (userInfoStr) {
      return JSON.parse(userInfoStr);
    }
    return null;
  } catch (e) {
    console.error("从本地存储获取用户信息失败:", e);
    return null;
  }
};
